/* 
1. 类型推断
> 赋值时推断(只声明不赋值，就是 any 类型)
> 函数默认会进行推断,会根据右边的赋值类型推导左边值的类型， 此时可以不标类型
> 返回值推断
> 属性推断
> 类型反推,  使用 typeof 关键字，将一个已知变量的类型作为类型来使用， typeof 会深拷贝类型, 可以获取对象的类型
> 函数不能当做类型来使用， 获取函数类型使用 typeof ;  typeof Fn 获取函数 Fn 的类型
> 与上相同，类也要使用 typeof 来获取类型; typeof 后面个的是值，不能是类型
*/

//-------------赋值推断------------------


// --------返回值推断-------------
function sum(a: string, b: string) {
    return a + b
}
let sum1 = sum('43', 'dsds')
//--------------------------------


//----------类型反推----------------------
let school = {
    name: 'zs',
    age: 12
}
type MySchool = typeof school // 将 school 的类型作为类型来使用
let a: typeof school = {
    name: '23',
    age: 43
}
//--------------------------------


export { }